System and Method for Providing Program Recommendations Through Multimedia Searching Based on Established Viewer Preferences

ABSTRACT

A system and method is disclosed for processing viewer profiles and program metadata from a number of sources to provide viewing suggestions and recommendations to one or more viewers.

BACKGROUND OF THE INVENTION

The present invention relates generally to systems and methods forproviding program recommendations and more particularly to systems andmethods for providing program recording recommendations from multimediasearching based on viewer profiles.

Recently, Digital Video Recorders, also known as Personal VideoRecorders have begun to gain in popularity with consumers. Much like theimpact that video cassette recorders (VCR) made when first introduced,these devices provide an even easier and more powerful way for consumersto record programs and watch them at a later time.

Digital video recorders are desirable because they are more robust andfeature laden than conventional VCRs. For example, digital videorecorders have the capability of concurrently recording incomingstreaming video data using storage drive technology and playing backpreviously recorded video data. As currently available, a digital videorecorder receives incoming streaming video data from the outputinterface of a standard set-top box configured to receive the broadcastsignals from a multiple-service operator (MSO), such as a cableprovider. These digital video recording devices are also a potentiallyvaluable source of user programming information since they can beuniquely identified in a network and have two-way communicationcapabilities.

As powerful as these digital video recording devices are, the burdenstill lies with the consumer to keep track of current programs and torecord the programs of interest to them. For example, the consumertypically has to navigate any printed or electronic guides to determinewhich programs to record and then the consumer has to program therecording device to record the desired programs. Furthermore, theseconventional programming guides are also difficult to navigate and giventhe ever increasing variety of programming available, it has becomequite cumbersome to actually find programming which is of interest tothe viewer.

Accordingly it would be desirable to have a more robust recommendationsystem and method which efficiently and effectively collects viewerpreference information and can provide viewers program recommendationsby multimedia searching programming content.

SUMMARY OF THE INVENTION

The present invention is a system and method for determining andproviding program recommendations based on correlations betweeninformation from multimedia searching of programming content/metadataand viewer profiles which indicate certain preferences for types andkinds of programming. Program metadata may be derived from multimediainformation or automatically derived, for example, in real time fromevent information that may be occurring in the world at large.Additionally program information may be garnered by automaticallyanalyzing the program video or multimedia information to derive themetadata. In one embodiment of the present invention, future programmingselections are reviewed utilizing metadata available for the futureprogramming selections. Weighting algorithms and selection schemes areapplied to determine which program selections are suitable for whichviewer and then recommendations based on the selection process areprovided to the viewer(s).

In one embodiment, the present invention is a method comprisingaccessing a profile associated with the video recording device,receiving metadata associated with a plurality of programs, processingthe metadata to select one or more of the programs based on the accessedprofile and providing one or more program recommendations for recordingon the video recording device.

In another embodiment, the present invention is a method for providingprogram recommendations comprising reviewing a plurality of futureprogram selections, accessing profiles associated with a plurality ofviewers, selecting programs from the reviewed future program selectionswhich relate to the accessed viewer profiles and issuing programrecommendations to the plurality of viewers.

In still another embodiment, the present invention is a systemcomprising a programming review component for reviewing programmetadata, a viewer profile access component for accessing and reviewingviewer profiles and a recommendation engine for selecting programs basedon the reviewed program metadata and the accessed viewer profiles.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary configuration of a system of the presentinvention.

FIG. 2 illustrates an exemplary central program controller in accordancewith the present invention.

FIG. 3 illustrates an exemplary method in accordance with the presentinvention.

FIG. 4 illustrates another exemplary method in accordance with thepresent invention.

DETAILED DESCRIPTION OF THE INVENTION

This application incorporates by reference nonprovisional U.S. patentapplication Ser. No. 10/034,679, which was filed on Dec. 28, 2001 whichclaims priority to U.S. provisional application Ser. No. 60/282,204,which was filed Apr. 6, 2001, and U.S. provisional application Ser. No.60/296,436, which was filed Jun. 6, 2001.

Referring to FIG. 1, an exemplary system 10 for providing programrecording recommendations based on viewer profiles and reviewedprogramming content is shown. In one embodiment, system 10 reviews acollection of programming material in order to provide programrecommendations to one or more viewers in light of those viewers'profile information. With reference to FIG. 1, system 10 is provided ina generally distributed configuration wherein a multitude of distributedviewers or subscribers 20, 30, 40 and 50 interact and communicate in atwo-way fashion with a central program controller 60. Generally, centralprogram controller 60 receives and review program information andprovides recommendations based on one or more viewer profiles. Centralprogram controller may be implemented in one embodiment as a computingdevice or a series of computing devices which communicate with viewers20, 30, 40 and 50. It is contemplated that any number of viewers arcable to communicate with central program controller 60 at any one timeand the four illustrated viewers are merely shown for illustrativepurposes.

In this embodiment of the present invention, each viewer, such as viewer20, is associated with a viewer profile 22 which is generally someclassification or description of that viewer's viewing history,preferences and/or desires. Each viewer, such as viewer 20, preferablyhas access to at least one video component system 24 which may include aviewing device, a video interface device such as a settop terminal and avideo recording device. Typically the viewing device may be atelevision, monitor or other device capable of displaying programming ina video format while settop terminal device may be a conventional settopterminal, satellite receiver or other similar device. Video recordingdevice may be a device which is capable of receiving and storingprogramming on a storage medium such as a rotating type storage drive(e.g., a hard disk drive), a writable digital video disk (DVD) or othertype of storage medium.

In the present invention, viewers are enabled to access televisionprogramming in a variety of formats such as broadcast video in eitherlive or prerecorded form or other type of programming such as a streamedfeed which may be multicast to a number of viewers simultaneously. Inthe present invention, such programming may be delivered to each viewervia any number of formats and devices including over the airtransmissions, microware transmission, cable transmissions,cable/optical fiber transmissions, satellite transmissions, etc. In thepresent invention, programming can include television, video, radio,Web-based and other forms and types of programming. In this exemplaryscenario, video recorder device is utilized to record certain programsset by the viewer in accordance with the recommendations provided to theviewer(s).

In one exemplary viewer scenario, the viewer would have a monitor or atelevision set which would be connected to a set-top box. The set-topbox would be connected through a coaxial cable to a cable television orbroadband network or a satellite dish for “satellite TV.” The televisionset and the set-top box would be located, for example, in a viewer'shome and receive a multitude of television channels from a broadcastheadend, wherein each television channel has a multitude of programsduring a typical day. Also connected to the television and set-top boxwould be a video recorder device which may be a digital video recorderthat includes a hard disk drive for recording and non-volatile storageof television programming. Upon receipt of the programmingrecommendations, one or more programs may be recorded by the viewer onthe viewer's video recorder device.

With reference to FIG. 1, communications between viewers 20, 30, 40 and50 and central program controller 60 may be accomplished within anetwork 70. In one embodiment, network 70 transports information, suchas viewer profile information from viewers 20, 30, 40 and 50 as well asprogram recommendations to viewers 20, 30, 40 and 50. Additionally,central program controller 60 receives or accesses program metadatainformation 80 via network 70. As discussed in more detail later herein,program metadata includes descriptive information about one or moreprogram selections which may be garnered from a variety of informationsources. Referring still to FIG. 1, network 70 may include one or moreheadends associated with one or more of the viewer cable set-top boxesor terminals. Within such a headend, signals to and from the viewers maybe encoded/decoded, multiplexed/demultiplexed, managed by a distributionand switching mechanism, combined/decombined and then transmitted to theplurality of viewer set-top terminals. In the present invention, thenetwork system may include a combination of telephone lines, wirelesssuch as cellular and microwave technologies, satellites, fiberoptics,coaxial, Personal Communication Networks and similar technologynecessary to establish, maintain and/or conduct communications toimplement the methods herein.

In the present invention, the network or networks as described hereinwould be able to provide versatile conduits that may carry, for example,signals to and from the personal video recording devices and a centralprocessor, such as a central program controller. Such signals may be RFsignals, Internet Protocol (IP) signals or other multimedia signalswhich may travel over, for example, the public switched telephonenetwork, Internet, or wireless communication networks. These variousnetwork configurations discussed are merely intended as examples ofpossible network configurations, protocols and architectures forimplementation of the present invention but it is contemplated that avariety of other possible configurations, protocols and architecturesmay be used provided that the viewer profile information and programrecommendations are allowed to be sent and transmitted over whatevernetwork configurations, protocols and architectures that may be used.

Referring now to FIG. 2, an exemplary central program controller 200 isshown. In this embodiment, central program controller 200 includes aviewer profile database 210, a metadata processing component 200 and arecommendation engine 230. Viewer profile database 210 may be alocalized database, e.g., resident on a local storage device withincentral program controller 200 or in alternative embodiments, database210 may be provided on a separate local area or wide area network. Inanother embodiment, viewer database 210 may also be representative of anumber of distributed viewer databases, such as may be provided withineach remote viewer's video recorder devices. Additionally, viewerdatabase 210 may be configured as a single database or further beseparated into additional sub-databases as necessary.

Still with reference to FIG. 2, viewer database 210 contains informationwhich represents or at least references different viewers and theirrespective viewing profiles. As discussed earlier herein, the presentinvention utilizes viewer preferences or profiles to determine whichprograms or shows to recommend to those viewer(s). In one embodiment ofthe invention, a profile of the viewer is stored which specifies certaincriteria, keywords and/or preferences on which that viewer's profile isbased. The criteria may include, for example, previously recordedprogramming information and/or keywords and/or phrases provided by theuser. Previously recorded programming information includes informationsuch as what shows, movies, videos, etc. have been scheduled forrecording and any other information related to the shows, movies,videos, etc. such as, for example, the movie title, names ofactors/directors/producers and other relevant program/show informationwhich may then form the basis of the viewer's profile. In oneembodiment, the profile can be set directly by the viewer viainteraction with an appropriately designed graphical user interface(GUI) whereby the viewer may proactively provide certain keywords whichdescribe the viewer's viewing preferences. For example, such keywordsmay include general classifications such as: drama, comedy, kid, adult,violence, romantic comedy, documentary, sports, news, music videos,history, sitcom, etc. In alternative embodiments, keywords provided bythe user may be very specific such as names of actors, directors,producers, set designers, etc. In some embodiments a profile might notbe separately stored for a group or an individual. A profile could beinferred by a combination of factors including specific events,geography, time of day, holiday. For example, if an accident occurs in acertain area there could be commands issued to record that news eventfor everyone in that area. These methods are in contrast to devices suchas those provided by TiVo where preferences are based on previousviewing patterns, collaborative filtering and viewer requests. It iscontemplated that any type of information which in some manner describesthe individual viewer's or group of viewer's preferences is permissible.

In the present invention, the collection and processing of profileinformation, such as a viewer's history of previously recordingprogramming, occurs in a manner which is transparent to the viewer sothat usage of the viewing device and the video recording device is notin any way hampered or interrupted. For example, in an exemplary basicconfiguration, a viewer does not have to do anything out of the ordinaryto communicate such previously recording program information, i.e., theuser simply programs the personal video recorder and watches therecorded programming as usual while the information related to suchprogramming is provided to central program controller 60 in a mannerdiscussed in more detail later herein. Of course in instances where theviewer profile is actually created by the viewer, such as by having theviewer submit keywords or describe in detail their preferences, willviewer input be necessary. It is further contemplated that a viewerprofile may be created by utilizing a combination of background viewerprofile screening, i.e., compiling a history of the viewer's pastprogramming as well and soliciting actual feedback from the viewer as tothe viewer's preferences.

In one embodiment of the present invention, central program controller200 receives and/or collects viewer profile information 240 on either aperiodic basis or on a continual basis as is necessary. For example,central program controller 200 may receive or collect program recordinginformation every time a viewer client makes or creates a new programrecording entry, i.e., a user programs the personal video recordingdevice to record a show. It is contemplated that other schemes arepossible for receiving or collecting program recording information, forexample, such information may only be received/collected based on a timeinterval setting, such as every n number minutes, where n is a realnumber as determined, for example, by a system operator, oralternatively, such information may he sent every time the useractivates the personal video recorder or further, every time informationabout a particular show/event is desired.

In the present invention, such viewer profile information may begathered in either a push type manner where data is fed to the centralprogram processor from each viewer, in a pull type manner where thecentral program processor polls or collects information from each vieweror in a combination a push/pull manner. In another scheme, for example,viewer profile information may be sent every time a newvideo/program/show is selected, a new scene within a video is selected,or other user operation upon the video is performed such as by rewindinga certain scene or scenes or by skipping over a certain scene or scenes.Additionally, the program recording information gathering may also becharacterized as being active, passive or a combination of the two. Forexample, collection of the recording information from the videorecording devices may be accomplished in an active manner wherebycentral program controller may actively seek out such information from anumber of distributed personal video recording devices. Alternatively,such information gathering may be accomplished in a passive mannerwhereby the central program controller waits and receives viewer profileinformation in a passive manner from the personal video recordingdevices.

Referring still to FIG. 2, as viewer profile information 240 isreceived/collected by central program controller 200, such viewerprofile information 240 may then be stored in viewer profile database210. Furthermore, within central program controller 200, programmetadata processor 220 receives and processes program descriptiveinformation 250. In one embodiment, program metadata processor 220 mayinclude or incorporate a video analysis component, for example, toperform scene detection and other functions to analyze program video.

Referring still to FIG. 2, in one embodiment of the present invention,recommendation engine 230 determines personalized recommendations foreach viewer separately. Alternatively, viewing recommendations may bedetermined for a group or community of viewers. In one embodiment,recommendations are determined by compiling viewer profile informationassociated with one or more viewers and comparing such information toprogram descriptive information. Recommendations based on the viewer(s)profile and the program metadata/descriptive information may then bemade. A number of techniques may be used to match the viewer profileinformation with the program descriptive information. For example, oneor more weighting algorithms may be used to decide which programs bestmatch a viewer's profile so that the best chance of the viewer acceptinga selected program is ensured. By way of further example, such weightingalgorithms may place more weight in viewer profile information garneredfrom that viewer's own past recording history and less weight to otherfactors. In another embodiment, more weight may be given to the viewer'sself-created profile, such as keywords provided by the viewer, ordemographic information associated with the viewer, such as the viewer'sphysical address, age, race, religion, sex, etc.

In an exemplary embodiment, normal collaborative filtering algorithmscan be used to associate certain viewer profiles(s) with certain programdescriptive information in order to determine viewing recommendations ina group or community viewing context. Collaborative filtering techniquesare known in the art and are discussed in Goldberg, D., Nichols, D.,Oki, B. M. and Terry, D. Using Collaborative Filtering to Weave anInformation Tapestry. Communications of the ACM, 35, 12 (December 1992),51-60; Hill, W. C., Stead, L., Rosenstein, M. and Furnas, G.Recommending and Evaluating Choices in a Virtual Community of Use, inProceedings of CHI'95 (Denver Colo., May 1995), ACM Press, 194-201; andResnick, P., Iacovou, N., Suchak, M., Bergstrom, P., Riedl, J.GroupLens: An Open Architecture for Collaborative Filtering of Netnews,in Proceedings of CSCW'94 (Chapel Hill N.C., October 1994), ACM Press,175-186.

Still with reference to FIG. 2, once recommendation engine 230determines programs which may match the viewer's profile such programrecommendations 260 are provided to the viewer(s). In operation, centralprogram controller 200 provides one or more of program recommendations260 to the viewer in a manner which is easily reviewed by the viewer.For example, program recommendations 260 may be provided in a dedicatedchannel which is accessible to the viewer via the viewer's viewingdevice and settop box. In such an embodiment, the viewer would be ableto tune to the dedicated channel and review the program recommendations.In another embodiment, program recommendations may be provided via analternative delivery process, such as via access to a web site, or anelectronic mail delivery or via a speech synthesized message deliveredto a message box associated with the viewer, or instant messaging orother push technology. For example, a digitally synthesized message(s)reciting the program recommendation may be delivered to the viewer'svoicemail box on an intermittent basis as the program recommendationsare determined. Ideally, the program recommendation delivered in thismanner would be provided to the viewer well in advance of the scheduledbroadcast date and time of the recommended programming. By way offurther example, recommendations could be provided in other manners,such as by having a “live” feed of information which may be insertedinto current programming the viewer is watching, such as by having ascrolling message appear, for example, at the bottom of the viewer'sscreen with a series of program recommendations for that day.

Referring now to FIG. 3, an exemplary method of the present invention isshown. In this embodiment, viewer profile information is acquired fromone or more video recording devices or settop terminals, step 300. Asdiscussed earlier herein, information may be acquired in any number ofmanners, such as by having the video recording devices or set-topterminals push information to the central program controller oralternatively, by having the central program controller poll thepersonal video recording devices or set-top terminals for such viewerprofile information. Program metadata or description information is thenacquired, step 310.

Such program metadata descriptive information may be acquired in anumber of manners. In one embodiment, central program controller isprovided access to a stored repository of future programming. Such arepository may be searched and reviewed in accordance with techniquesdiscussed herein to determine information about the program content. Inanother embodiment, program related information may be acquired from oneor more electronic program guides which may relay information related tocurrent and future programming to the viewer or other similar sources ofprogram information such as extended data service vertical blankinginterval data. In another embodiment, such program descriptiveinformation may be acquired in a real-time manner such as by processingprogramming on a real time basis to garner information about theprogramming. For example, a number of techniques may be employed such asusing speech recognition, text/scene analysis, close captioning analysisand other types of similar techniques in order to garner informationabout the programming on a real time basis. Such programming may beprocessed in accordance with one or more of the aforementionedtechniques in order to obtain information about the program(s) beingprocessed. In another embodiment where actual future programming contentcannot be accessed, program previews/trailers for such futureprogramming may be analyzed to determine information about futureprogramming content. Additionally, time zone differences could be usedso a program that was broadcast on the east coast could be analyzedahead of its broadcast on the west coast. All these techniques woulddefine a type of introductory data to a program that we could thenanalyze as part of creating a recommendation.

Once the viewer profile information and the program descriptiveinformation is received, this information is processed to determineprograms which may be suitable for the viewer(s) whose profileinformation was received, step 320. Again, as mentioned earlier, suchprofile information may relate to one viewer or a group of viewers whohave been joined together as a group or “community of interest”.Processing may involve a number of steps such as processing theinformation to determine which programs may be most desirable to theviewer(s) based on information obtained from their viewer profile. Inone embodiment, processing of the viewer profile information and programmetadata may be performed in central program controller 200, such as bymetadata processing component 220 and a recommendation engine 230 withincentral program controller 200. Once the information is processed,program recommendations are issued to the viewer(s), step 330.

Referring now to FIG. 4, another exemplary method of the presentinvention is shown with general applicability towards a group orcommunity of viewers. In this embodiment, the identity of group membersis determined, step 400. For example, a number of viewers may organize agroup and designate the members to the central program controller. Sucha designation may he via an appropriate GUI, such as one provided viaeach viewer's subscription cable system which is in communication withthe central program controller or such a provision may be made in a morerudimentary fashion, such as via a telephone based system whichcommunicates with the central program controller. Once the group membersare identified, the group profile is then determined, step 410. Forexample, in one embodiment, the profile of a single member of the groupmay be used to determine which programs to record for the group. In analternative embodiment, the profiles of each group member may be used todetermine a group profile and the aggregated group profile used todetermine which programs to record for the group. Other variations inthese group scenarios are contemplated and possible. Once the groupprofile is determined, programs to be recommended to the group areselected, step 420. Once the programs to be recorded are selected,program recommendations are issued to the group members, step 430. It iscontemplated that in the present invention, viewers may also receivegroup based programming recommendations as well as individually tailoredprogramming recommendations simultaneously.

While the present invention has been described with reference topreferred and exemplary embodiments, it will be understood by those ofordinary skill in the art that various changes may be made andequivalents may be substituted for elements thereof without departingfrom the scope of the invention. In addition, many modifications may bemade to adapt a particular situation or material to the teachings of theinvention without departing from the scope thereof.

For example, while the teachings here are discussed primarily withreference to television programming, the present inventive teachings maybe easily applied to other types of programming such as radioprogramming and other types of programming where viewer profiles orpreferences may be collected and programming recommendation can be made.By way of further example, the present inventive teachings may bemodified by having a plurality of program selections reviewedcontemporaneously with the broadcasting of the program selections in afirst geographic area and the programming recommendations provided to aplurality of viewers in a second geographic area. More specifically,broadcasting information may be reviewed and processed in one time zone,in order to provide recommendations to viewers in another time zone.

By way of further example, while the teachings here are discussedprimarily with reference to viewer profiles which express a viewer'spreferences in a positive type fashion, such as what types ofprogramming the viewer likes, it is contemplated that the profiles maybe provided in a negative type fashion where the viewer may indicateprogramming that the viewer does not like or does not want to see. Withrespect to all embodiments shown and described herein, it is intendedthat the invention not be limited to the particular embodimentdisclosed, but that the invention will include all embodiments fallingwithin the scope of the appended claims.

1-20. (canceled)
 21. A method comprising: accessing a profile associatedwith a video recording device associated with a viewer; derivingmetadata from multimedia associated with a plurality of programs, themultimedia comprising a preview for one of the plurality of programs;selecting the one of the plurality of programs based on the metadata andthe profile to generate a program recommendation; transmitting theprogram recommendation to the video recording device associated with theviewer.
 22. The method of claim 21, wherein the multimedia associatedwith the plurality of programs further comprises a trailer for the oneof the plurality of programs.
 23. The method of claim 21, wherein theprofile associated with the video recording device is based on reviewingpreviously scheduled program recordings and user specified keywords, theprofile generated using a weighting algorithm that places more weight onthe history of previously scheduled program recordings than the userspecified keywords and phrases.
 24. The method of claim 21, wherein theprofile is a group profile based on a plurality of viewer user profiles,each of the plurality of viewer user profiles associated with a relatedvideo recording device.
 25. The method of claim 21, wherein the derivingmetadata associated with a plurality of programs occurs in real-time.26. The method of claim 25, wherein the deriving metadata frommultimedia associated with a plurality of programs comprises derivingmetadata contemporaneously with a broadcasting of a particular programin a first geographic area and the transmitting the programrecommendation is to a video recording device located in a secondgeographic area prior to a broadcasting of the particular program in thesecond geographic area.
 27. The method of claim 21, wherein the derivingmetadata from multimedia associated with a plurality of programs isbased on analysis of video and audio content of the multimedia, theanalysis comprising speech recognition, text analysis, and sceneanalysis.
 28. An apparatus comprising: a processor; and a memory tostore computer program instructions, the computer program instructionswhen executed on the processor cause the processor to perform operationscomprising: accessing a profile associated with a video recording deviceassociated with a viewer; deriving metadata from multimedia associatedwith a plurality of programs, the multimedia comprising a preview forone of the plurality of programs; selecting the one of the plurality ofprograms based on the metadata and the profile to generate a programrecommendation; transmitting the program recommendation to the videorecording device associated with the viewer.
 29. The apparatus of claim28, wherein the multimedia associated with the plurality of programsfurther comprises a trailer for the one of the plurality of programs.30. The apparatus of claim 28, wherein the profile associated with thevideo recording device is based on reviewing previously scheduledprogram recordings and user specified keywords, the profile generatedusing a weighting algorithm that places more weight on the history ofpreviously scheduled program recordings than the user specified keywordsand phrases.
 31. The apparatus of claim 28, wherein the profile is agroup profile based on a plurality of viewer user profiles, each of theplurality of viewer user profiles associated with a related videorecording device.
 32. The apparatus of claim 28, wherein the derivingmetadata associated with a plurality of programs occurs in real-time.33. The apparatus of claim 32, wherein the deriving metadata frommultimedia associated with a plurality of programs comprises derivingmetadata contemporaneously with a broadcasting of a particular programin a first geographic area and the transmitting the programrecommendation is to a video recording device located in a secondgeographic area prior to a broadcasting of the particular program in thesecond geographic area.
 34. The apparatus of claim 28, wherein thederiving metadata from multimedia associated with a plurality ofprograms is based on analysis of video and audio content of themultimedia, the analysis comprising speech recognition, text analysis,and scene analysis.
 35. A computer readable medium storing computerprogram instructions, which, when executed on a processor, cause theprocessor to perform operations comprising: accessing a profileassociated with a video recording device associated with a viewer;deriving metadata from multimedia associated with a plurality ofprograms, the multimedia comprising a preview for one of the pluralityof programs; selecting the one of the plurality of programs based on themetadata and the profile to generate a program recommendation;transmitting the program recommendation to the video recording deviceassociated with the viewer.
 36. The computer readable medium of claim35, wherein the multimedia associated with the plurality of programsfurther comprises a trailer for the one of the plurality of programs.37. The computer readable medium of claim 35, wherein the profileassociated with the video recording device is based on reviewingpreviously scheduled program recordings and user specified keywords, theprofile generated using a weighting algorithm that places more weight onthe history of previously scheduled program recordings than the userspecified keywords and phrases.
 38. The computer readable medium ofclaim 35, wherein the profile is a group profile based on a plurality ofviewer user profiles, each of the plurality of viewer user profilesassociated with a related video recording device.
 39. The computerreadable medium of claim 35, wherein the deriving metadata associatedwith a plurality of programs occurs in real-time.
 40. The computerreadable medium of claim 39, wherein the deriving metadata frommultimedia associated with a plurality of programs comprises derivingmetadata contemporaneously with a broadcasting of a particular programin a first geographic area and the transmitting the programrecommendation is to a video recording device located in a secondgeographic area prior to a broadcasting of the particular program in thesecond geographic area.